#ifndef __WX_HELPEXT_H_
#define __WX_HELPEXT_H_

#include "wx/helpbase.h"

class wxExtHelpController : public wxHelpControllerBase {
  public:
    wxExtHelpController( wxWindow* parentWindow = NULL );
    virtual ~wxExtHelpController();
    void SetBrowser( const wxString& browsername = wxEmptyString, bool isNetscape = false );
    virtual void SetViewer( const wxString& viewer = wxEmptyString, long flags = wxHELP_NETSCAPE );
    virtual bool Initialize( const wxString& dir, int ( server ) ) { return Initialize( dir ); }
    virtual bool Initialize( const wxString& dir );
    virtual bool LoadFile( const wxString& file = wxEmptyString );
    virtual bool DisplayContents( void );
    virtual bool DisplaySection( int sectionNo );
    virtual bool DisplaySection( const wxString& section );
    virtual bool DisplayBlock( long blockNo );
    virtual bool KeywordSearch( const wxString& k, wxHelpSearchMode mode = wxHELP_SEARCH_ALL );
    virtual bool Quit( void );
    virtual void OnQuit( void );
    virtual bool DisplayHelp( const wxString & ) ;
    virtual void SetFrameParameters( const wxString & ( title ), const wxSize & ( size ),
                                     const wxPoint & ( pos ) = wxDefaultPosition, bool ( newFrameEachTime ) = false ) {
    }
    virtual wxFrame *GetFrameParameters( wxSize * ( size ) = NULL, wxPoint * ( pos ) = NULL,
                                         bool * ( newFrameEachTime ) = NULL ) {
      return ( wxFrame* ) NULL;
    }
  protected:
    wxString         m_helpDir;
    int              m_NumOfEntries;
    wxList          *m_MapList;
  private:
    bool ParseMapFileLine( const wxString& line );
    void DeleteList( void );
    wxString         m_BrowserName;
    bool             m_BrowserIsNetscape;
    DECLARE_CLASS( wxExtHelpController )
};

#endif
